/*global pi */
// 事件处理器模块，提供事件处理器列表

pi.mod.define('pi.event', function(pi) {
	"use strict";
	// 定义模块
	var module = {};

	// 创建事件处理器列表
	module.createHandlerList = function() {
		var arr = [],
		list = function(e) {
			var i, r = false;
			for (i = arr.length - 1; i >= 0; i--) {
				try {
					r = arr[i](e);
				} catch(ex) {
					if (pi.log) {
						pi.log("pi.event, ex: " + ex);
					}
				}
				if (r === false) {
					return false;
				}
			}
			return r;
		};
		// 添加事件处理器
		list.add = function(handler) {
			arr.push(handler);
		};
		// 删除事件处理器
		list.remove = function(handler) {
			var i;
			for (i = arr.length - 1; i >= 0; i--) {
				if (arr[i] === handler) {
					arr.splice(i, 1);
					return true;
				}
			}
			return false;
		};
		return list;
	};

	return module;
});